<?php
    class Module {
        private $mid;
        public  $name;
        public  $description;
        private $dir;
        public  $cfg;
        
        public function __construct($mid) {
            if(count($data = ModuleDAO::getInfo($mid))) {
                $this->setData($data);
                //Odczytaj konfigurację modułu ($this->getConfig()) i przypisz do atrybutu $cfg
            }
            else {
                $this->mid = 0;
            }
        }
        
        private function setData($data) {
            foreach($data as $key => $val) {   
                if(property_exists(get_class($this),$key)) {
                    $this->$key = $val;
                }
            }
        }
        
        public function getMid() {
            return $this->mid;
        }
        
        public function getDir() {
            return $this->dir;
        }
        
        public function getAllowedUsers() {
            if($mid < 1) {
                return false;
            }
            return (ModuleDAO::getAllowedUsers($this->mid));
        }
        
        
      /*  public function addUserRight($uid, $rightId) {
            Sprawdź, czy $this->mid > 0
                Jeżeli nie, zwróć fałsz
            Sprawdź, czy użytkownik o podanym $uid istnieje w bazie za pomocą klasy UserDAO
                Jeżeli nie, zwróć fałsz
            Dodaj prawa do ustawionego modułu dla danego użytkownika za pomocą klasy ModuleDAO i zwróć prawdę
        }
        
        public function delUserRight($uid, $rightId) {
            Sprawdź, czy $this->mid > 0
                Jeżeli nie, zwróć fałsz
            Sprawdź, czy użytkownik o podanym $uid istnieje w bazie za pomocą klasy UserDAO
                Jeżeli nie, zwróć fałsz
            Sprawdź, czy użytkownik $uid posiada prawo $rightId do modułu $this->mid za pomocą klasy ModuleDAO
                Jeżeli nie, zwróć fałsz
            Usuń prawo $rightId do ustawionego modułu dla danego użytkownika za pomocą klasy ModuleDAO i zwróć prawdę
        }
        
        public function addGroupRight($gid, $rightId) {
            Sprawdź, czy $this->mid > 0
                Jeżeli nie, zwróć fałsz
            Sprawdź, czy grupa o podanym $gid istnieje w bazie za pomocą klasy GroupDAO
                Jeżeli nie, zwróć fałsz
            Dodaj prawo $rightId do ustawionego modułu dla danej grupy za pomocą klasy ModuleDAO i zwróć prawdę
        }
        
        public function delGroupRight($gid, $rightId) {
            Sprawdź, czy $this->mid > 0
                Jeżeli nie, zwróć fałsz
            Sprawdź, czy grupa o podanym $gid istnieje w bazie za pomocą klasy GroupDAO
                Jeżeli nie, zwróć fałsz
            Sprawdź, czy grupa $gid posiada prawo $rightId do modułu $this->mid za pomocą klasy ModuleDAO
                Jeżeli nie, zwróć fałsz
            Usuń prawo $rightId do ustawionego modułu dla danej grupy za pomocą klasy ModuleDAO i zwróć prawdę
        }
        
        public function readConfig() {
            Jeżeli $this->mid < 1
                Zwróć fałsz
            Sprawdź, czy plik $this->dir/configuration.php istnieje i czy można z niego czytać
                Jeżeli nie, zwróć fałsz
            Wczytaj konfigurację modułu z pliku $this->dir/configuration.php do atrybutu $this->cfg
            Zwróć prawdę
        }
        
        public function saveConfig() {
            Jeżeli $this->cfg nie jest ustawione
                Zwróć fałsz
            Sprawdź, czy plik $this->dir/configuration.php istnieje i czy można do niego pisać
                Jeżeli nie, zwróć fałsz
            Zapisz konfigurację do pliku $this->dir/configuration.php w postaci klucz = wartosc
            Zwróc prawdę
        }
        */
    }
?>
